package com.zhichat.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户信息表
 *
 * @author zqli
 * @email lzq@hello.com
 * @date 2024-11-16 21:15:22
 */
@Data
@Accessors(chain = true)
@TableName("user_info")
public class UserInfoEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 数据库ID
     */
    @TableId("id")
    private Long id;
    /**
     * 用户ID（唯一）
     */
    @TableField("user_id")
    private String userId;
    /**
     * 用户手机号
     */
    @TableField("phone")
    private String phone;
    /**
     * 用户昵称
     */
    @TableField("nickname")
    private String nickname;
    /**
     * 用户性别（1：女，2：男）
     */
    @TableField("gender")
    private Integer gender;
    /**
     * 地区名称
     */
    @TableField("area_name")
    private String areaName;
    /**
     * 地区编号（作用：适配前端，展示好友地区占比等情况）
     */
    @TableField("area_code")
    private String areaCode;
    /**
     * 用户密码
     */
    @TableField("password")
    private String password;
    /**
     * 用户邮箱
     */
    @TableField("email")
    private String email;
    /**
     * 用户个性签名
     */
    @TableField("personal_signature")
    private String personalSignature;
    /**
     * 用户状态（1：禁用，2：正常）
     */
    @TableField("status")
    private Integer status;
    /**
     * 好友添加确认（1：允许任何人添加自己为好友，2：不允许任何人添加自己为好友，3：需要验证）
     */
    @TableField("join_type")
    private Integer joinType;
    /**
     * 最后离线时间（记录时间毫秒值）
     */
    @TableField("last_off_time")
    private Long lastOffTime;
    /**
     * 用户最后登录时间
     */
    @TableField("last_login_time")
    private LocalDateTime lastLoginTime;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonIgnore
    private LocalDateTime createTime;
    /**
     * 修改时间
     */
    @TableField("update_time")
    @JsonIgnore
    private LocalDateTime updateTime;
}
